package com.yunke.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yunke.common.base.YunkeBaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 云科搭子信息实体类
 * 对应数据库表：dz_dazi
 * 
 * @author yunke
 * @since 2024-01-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dz_dazi")
@Schema(description = "搭子信息")
public class YunkeDazi extends YunkeBaseEntity {

    /**
     * 发布者用户ID
     */
    @TableField("user_id")
    @Schema(description = "发布者用户ID")
    private Long userId;

    /**
     * 分类ID
     */
    @TableField("tab_class_id")
    @Schema(description = "分类ID")
    private Long tabClassId;

    /**
     * 标题
     */
    @TableField("title")
    @Schema(description = "搭子标题")
    private String title;

    /**
     * 内容描述
     */
    @TableField("content")
    @Schema(description = "搭子内容描述")
    private String content;

    /**
     * 图片列表，JSON格式存储
     */
    @TableField("images")
    @Schema(description = "图片列表，JSON格式")
    private String images;

    /**
     * 活动地点
     */
    @TableField("location")
    @Schema(description = "活动地点")
    private String location;

    /**
     * 详细地址
     */
    @TableField("address")
    @Schema(description = "详细地址")
    private String address;

    /**
     * 经度
     */
    @TableField("longitude")
    @Schema(description = "经度")
    private String longitude;

    /**
     * 纬度
     */
    @TableField("latitude")
    @Schema(description = "纬度")
    private String latitude;

    /**
     * 需要人数
     */
    @TableField("need_people")
    @Schema(description = "需要人数")
    private Integer needPeople;

    /**
     * 已加入人数
     */
    @TableField("joined_people")
    @Schema(description = "已加入人数")
    private Integer joinedPeople;

    /**
     * 活动时间
     */
    @TableField("activity_time")
    @Schema(description = "活动时间")
    private Long activityTime;

    /**
     * 报名截止时间
     */
    @TableField("deadline_time")
    @Schema(description = "报名截止时间")
    private Long deadlineTime;

    /**
     * 费用说明
     */
    @TableField("cost_desc")
    @Schema(description = "费用说明")
    private String costDesc;

    /**
     * 联系方式
     */
    @TableField("contact")
    @Schema(description = "联系方式")
    private String contact;

    /**
     * 是否需要审核 0-否 1-是
     */
    @TableField("need_audit")
    @Schema(description = "是否需要审核 0-否 1-是")
    private Integer needAudit;

    /**
     * 性别要求 0-不限 1-男 2-女
     */
    @TableField("gender_limit")
    @Schema(description = "性别要求 0-不限 1-男 2-女")
    private Integer genderLimit;

    /**
     * 年龄要求最小值
     */
    @TableField("age_min")
    @Schema(description = "年龄要求最小值")
    private Integer ageMin;

    /**
     * 年龄要求最大值
     */
    @TableField("age_max")
    @Schema(description = "年龄要求最大值")
    private Integer ageMax;

    /**
     * 状态 0-草稿 1-已发布 2-进行中 3-已完成 4-已取消
     */
    @TableField("status")
    @Schema(description = "状态 0-草稿 1-已发布 2-进行中 3-已完成 4-已取消")
    private Integer status;

    /**
     * 审核状态 0-待审核 1-审核通过 2-审核拒绝
     */
    @TableField("audit_status")
    @Schema(description = "审核状态 0-待审核 1-审核通过 2-审核拒绝")
    private Integer auditStatus;

    /**
     * 审核备注
     */
    @TableField("audit_remark")
    @Schema(description = "审核备注")
    private String auditRemark;

    /**
     * 审核者ID
     */
    @TableField("auditor_id")
    @Schema(description = "审核者ID")
    private Long auditorId;

    /**
     * 审核时间
     */
    @TableField("audit_time")
    @Schema(description = "审核时间")
    private Long auditTime;

    /**
     * 是否置顶 0-否 1-是
     */
    @TableField("is_top")
    @Schema(description = "是否置顶 0-否 1-是")
    private Integer isTop;

    /**
     * 置顶过期时间
     */
    @TableField("top_expire_time")
    @Schema(description = "置顶过期时间")
    private Long topExpireTime;

    /**
     * 置顶结束时间
     */
    @TableField("top_end_time")
    @Schema(description = "置顶结束时间")
    private Long topEndTime;

    /**
     * 置顶开始时间
     */
    @TableField("top_time")
    @Schema(description = "置顶开始时间")
    private Long topTime;

    /**
     * 浏览次数
     */
    @TableField("view_count")
    @Schema(description = "浏览次数")
    private Integer viewCount;

    /**
     * 点赞次数
     */
    @TableField("like_count")
    @Schema(description = "点赞次数")
    private Integer likeCount;

    /**
     * 评论次数
     */
    @TableField("comment_count")
    @Schema(description = "评论次数")
    private Integer commentCount;

    /**
     * 分享次数
     */
    @TableField("share_count")
    @Schema(description = "分享次数")
    private Integer shareCount;

    /**
     * 发布时间
     */
    @TableField("publish_time")
    @Schema(description = "发布时间")
    private Long publishTime;


} 